package com.qdlc.p2p.dal.dao;

import java.util.List;

import com.qdlc.p2p.dal.common.dao.BaseDao;
import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.WineCoupons;
import com.qdlc.p2p.dal.model.WineCouponsModel;

/**
 * 酒券方案DAO接口
 * @author ygw
 * @version 1.1.0.0
 * @since 2016年05月06日 13时52分37秒
 */
public interface WineCouponsDao extends BaseDao<WineCoupons> {

    /**
     * 查询酒券方案
     * 
     * @param id 主键ID
     * @return酒券方案实体
     */
	WineCoupons getWineCouponsById(long id);
    
    /**
	 * 查询已开启的酒券方案
	 * 
	 * @return List<WineCoupons>
	 */
	List<WineCoupons> findUsableWineCoupons();
	
	/**
	 * 查询所有已开启的固定金额酒券方案
	 * 
	 * @return List<WineCoupons>
	 */
	List<WineCoupons> findUsableWineCouponsForFixed();
	
	/**
	 * 查询所有已开启的与操作金额有关的酒券方案
	 * 
	 * @return List<WineCoupons>
	 */
	List<WineCoupons> findUsableWineCouponsForNoFixed();
	
    /**
	 * 分页查询酒券方案
	 * 
	 * @param model WineCouponsModel
	 * @return PageDataList<WineCouponsModel>
	 */
	PageDataList<WineCouponsModel> list(WineCouponsModel model);
	
	/**
	 * 删除酒券方案(伪删除），将酒券方案是否删除状态置为删除
	 * 
	 * @param id 酒券主键ID
	 */
	void delete(long id);

	/**
	 * 修改酒券规则状态
	 * @param status
	 * @param prestatus
	 * @param id
	 * @return
	 */
	int update(byte status, byte prestatus, long id);
}
